WinAuthを使ってMFAを設定してみた
はじめに
こんにちは。
くコ:彡がトレードマークの阿部です。
Windowsで使えるWinAuthを使って、IAMユーザーにMFAを設定してみました。
MFAとは?
AWSアカウントやIAMユーザーでAWSマネジメントコンソールにログインする場合、ユーザー名とパスワードによる認証を行います。
AWS Multi-Factor Authentication(MFA)を使うと、ユーザー名とパスワードの認証に加えて、MFAデバイスが発行するワンタイムパスワードを使った認証を行う事が出来ます。
MFAは物理デバイスや、スマートフォンにインストールする仮想MFAアプリケーションを利用出来ます。
AWS公式ページを確認したところ、仮想MFAアプリケーションとして、スマートフォン用のアプリの例が紹介されていました。
物理デバイスを用意するほどではないが、スマートフォンは用意出来ない。なんて事もあるのではないでしょうか。
Windowsで動作するWinAuthを使ったMFAを試してみましたので、ご紹介します。
MFA設定手順
WinAuthのダウンロード
WinAuthのページにアクセスします。
Downloadを選択し、zipファイルをダウンロードします。
zipファイルの中身は、WinAuth.exe
です。
MFA設定
AWSマネジメントコンソールにログインし、IAM画面にアクセスします。
左メニュー[ユーザー]からMFAデバイスを有効化するユーザーを選択し、[認証情報]タブ中の[MFAデバイスの管理]を押下します。
[仮想MFAデバイス]を選択して、[次のステップ]に進みます。
AWS MFAと互換性のあるアプリケーションをインストールしておく必要がある旨のメッセージが表示されます。
WinAuthがあるので、大丈夫ですね。[次のステップ]に進みます。
QRコードが表示されます。
MFAデバイスとしてスマートフォンを使う場合は、QRコードを読み込む形になります(アプリケーションが対応している場合)。
今回は、[手動設定のシークレットキーを表示]を選択します。
シークレット設定キーが表示されるので、コピーします。
画面キャプチャではマスクしていますが、ランダムな文字列が表示されています。
展開しておいたWinAuth.exe
を実行し、Addを選択します。
リストが表示されるので、[Google]を選択します。
Nameは適当なものを入力します。
シークレット設定キーをペーストし、[Verify Authenticator]を選択すると、6桁の数字が表示されます。
AWSマネジメントコンソールに戻ります。6桁の数字を認証コード1に入力します。
しばらく待つと別の6桁の数字が表示されるので、認証コード2に入力し、[仮想MFAの有効化]を選択します。
AWSマネジメントコンソールを使った設定は以上です。
WinAuthで[OK]を選択すると、Protection画面に進みます。
WinAuthを起動した際に、パスワードを求めるようにする事が出来ます。
[Protect with my own password]を選択し、パスワードを入力します。
[OK]を選択すると、ワンタイムパスワードが表示されます。
MFAを使ったIAMユーザーのログイン
MFAを有効にしたIAMユーザーで、AWSマネジメントコンソールにログインしてみます。
IAMユーザー用のログインページにアクセスし、ユーザー名、パスワードを入力します。
[サインイン]を選択すると、MFAコードの入力画面に移ります。
WinAuthで表示される6桁の数字を入力してみます。
[送信]を選択すると、AWSマネジメントコンソールに接続出来ました!
WinAuthのパスワード保護機能
MFAを[Add]する際に、[Protect with my own password]を有効にしました。
どんな動きをするのか確認しておきましょう。WinAuthを終了し、再実行してみます。
パスワードの入力を求められました。
パスワードを入力すると、ワンタイムパスワードを表示する画面に遷移します。
参考
- Discussion Forums - Windows PC as virtual MFA ?
- AWS Identity and Access Management ユーザーガイド - IAM ユーザーの仮想 MFA デバイスを有効にする(AWS マネジメントコンソール)
おわりに
WinAuthを使ったMFA設定を行いました。
実作業としては、2,3分でMFAを利用出来るようになりました。
またWinAuthにはパスワード保護機能があり、他人の不正利用を軽減出来る事がわかりました。
MFAを設定していないかたは、この機会にご検討下さい。
ルートアカウントや変更権限のあるIAMユーザーへのMFA設定は必須と言えるかと思います。
では、また!